Conventional integrated circuits can comprise billions of devices on many different layers. Custom and other designs of integrated circuits can be created using electronic design automation (EDA) technologies that typically run on an operating system in conjunction with a microprocessor-based computer system or other programmable control system. Conventional EDA systems typically generate a layout of shapes corresponding to circuit elements (e.g., gates, transistors, etc.) for each of the different layers. In many design applications, the EDA software can further include functionality that allows a user to implement “cells” as a basic element of functionality through a layout editor implemented on a graphical user interface (GUI). A given cell may be placed, or “instanced,” many times in a layout design to accelerate the design process.
A hierarchical design is an electronic circuit design having a collection of different levels (e.g., level 0, 1, 2, . . . , n), wherein each higher level hides the details and shapes of the lower levels to simplify the design process. That is, a design hierarchy allows the circuit design to be broken down into a collection of smaller designs (or levels), thus reducing visual complexity of the design process, and enabling the EDA system to work with a collection of smaller design files so the design tools can run faster.
Using a GUI, a designer can easily issue commands to the EDA tool to edit the current cellview design in a hierarchical design. Circuit designers generally create a design and reuse it by placing an instance of the cellview inside another design and this way a level of hierarchy can be created. Many EDA tools (e.g., layout editor tools) support conventional “Edit-In-Place”(EIP) & “Descend” commands for hierarchical layout editing. Using such commands one can descend into the lower level cellview from the current cellview and edit it without opening its master cellview explicitly. When a command is invoked, then on mouse hover, a graphical highlight appears around the shape underneath the mouse cursor. This highlight indicates that on command execution (e.g., mouse click or other user interaction with the GUI), the user will be able to edit the cellview where that shape is present. Although these conventional graphical highlights and GUI commands are helpful, there are many situations where problems with them can arise that decrease or limit user productivity, for example in very dense designs and/or designs having shapes or colors that are difficult to highlight effectively and unambiguously. Moreover, these conventional graphical highlights do not always effectively convey hierarchy information, which would be useful for making decisions for further editing commands.